\chapter{Analyse de l'existant}
\section{Le logiciel R}
\paragraph{}
Le logiciel R est à la fois un environnement interactif de calcul, en lignes de
commandes et un langage de programmation. Il existe sur différentes plateformes
(Linux, MacOS et Windows). Il peut être utilisé pour des traitements de données
ou des analyses statistiques. R est un logiciel libre, ouvert à la participation de
développeurs extérieurs. En effet, l’environnement s’enrichit par l’intégration de
packages provenant de la communauté ajoutant des modules et des fonctionnalités
complémentaires au logiciel initial.\\\\

\begin{center}
\includegraphics[scale=0.7]{Rlogo.png}\\
\textit{Le logiciel R}
\end{center}

\paragraph{}
La communauté R est très active et de nombreux modules sont régulièrement proposés.
R permet facilement de charger des données, de sortir des informations statistiques, de visualiser
diverses courbes extraites des données, etc.
\paragraph{}
Par défaut, R se présente sous la forme d'une ligne de commande. Il est cependant possible de
développer des interfaces utilisateur pour contrôler l'application ainsi que pour visualiser des
résultats de traitement.

\begin{center}
\includegraphics[scale=0.7]{demarrage_r.png}\\
\textit{Aperçu de la console R}
\end{center}
\newpage
\paragraph{} 
Le logiciel R nous permet de traiter des données tabulaires, sous forme de vecteurs, ou de data-frame (matrice contenant les instances des objets en ligne, avec un attribut par colonne). Il propose ensuite des opérations sur les vecteurs, tout en discriminant les objets par leurs attributs non numériques. Ce qui permet d’étiqueter les objets avant de faire des calculs et pouvoir ensuite différencier les résultats des calculs en fonction des étiquettes des objets.

\paragraph{} On utilisera sans doute cette particularité pour colorer les objets dans la fenêtre 3D en fonction de leurs propriétés.

\newpage

\section{Le logiciel Explorer3D}
\paragraph{}
De leur coté, Matthieu Exbrayat et Lionel Martin, maîtres de conférences au Laboratoire d'informatique Fondamentale d'Orléans, développent depuis plusieurs années un logiciel de visualisation de données
doté d'une interface graphique 3D interactive. Ce logiciel est écrit en Java.\\
http://www.univ-orleans.fr/lifo/software/Explorer3D/

\begin{center}
\includegraphics[scale=0.3]{explorer3d.jpg}\\
\textit{Explorer3D}
\end{center}

\paragraph{}
Ils ont acquis une bonne maîtrise de la structuration d'un tel outil afin de le rendre évolutif. Ils ont également mis en place un certain nombre de fonctionnalités interactives.
\newpage

\paragraph{} La plateforme R est devenue un standard du domaine de la classification. Mais le logiciel Explorer3D, propose une interface inédite pour la visualisation des résultats de classification. C'est pourquoi ses concepteurs souhaiteraient porter leur travail sous R, car il sera ainsi plus facile d'accès et s'inscrira dans le standard du domaine. Cette mise aux normes du standard devrait permettre une diffusion plus large du projet Explorer3D, puisque cela le rendra utilisable par tous les utilisateurs de R.

\paragraph{}
Nous étudions maintenant les possibilités d'interactions entre ce logiciel et la plateforme R, afin d'intégrer rapidement divers outils existant sous R, mais également de diffuser notre logiciel vers cette communauté.\\
Au moins deux approches sont possibles :
\begin{itemize}
\item intégrer des invocations de R depuis java.
\item migrer notre logiciel vers R.
\end{itemize}

\paragraph{}
Concernant le premier point, l'invocation de R depuis java est relativement simple. Elle ne sera pas
abordée dans ce TER. Concernant le second point, R propose la création de fenêtres de contrôle et
de fenêtres graphiques 2D et 3D (voir par exemple http://rgl.neoscientists.org/). Toutefois, nous ne
connaissons pas les possibilités d'interaction réelles de l'interface 3D.

\begin{center}
\includegraphics[scale=0.3]{explorer.png}\\
\textit{Les possibilités d'Explorer3D}
\end{center}


\newpage
\section{Packages R utilisables}
\paragraph{} Après quelques recherches sur internet, il apparaît qu'il existe des packages R, bibliothèques libres mises au point par la communauté, qui pourraient répondre à certains besoins du portage d'Explorer3D sous R. Nous en avons retenu deux pour le moment, RGL et Rgtk, qui semblent répondre respectivement aux attentes en termes de : fenêtre 3D et interactions avec la scène 3D pour le premier, et interface utilisateur pour le second. Nous allons présenter plus en détails ces deux packages.
\subsection{RGL}
\input{introrgl}
\newpage
\subsection{RGTK}
\input{introrgtk}
\newpage